<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        /* 一、新建数组
            方式一、使用new关键字
            方式二、使用数组字面量
        */
        var arr = new Array();
        // 可以同时传递参数，参数是具体的值
        var arr11 = new Array(1,2,3,4,5);
        console.log(arr11);  // {"0":1,"1":2,"2":3,"3":4,"4":5,"length":5} 
        console.log(arr11.length); // 5

        var arr2 = [];
        // 也可以同时指定具体的值
        var arr22 = [1,2,3,4,5,10];
        console.log(arr22);  // {"0":1,"1":2,"2":3,"3":4,"4":5,"5":10,"length":6} 
        console.log(arr22.length); // 6

        // 二者的区别只有1个
        var arr44 = [10];  // 数组中只有1个元素
        var arr55 = new Array(10);  // 数组中有10个元素

        console.log(arr44.length);  // 1
        console.log(arr55.length);  // 10

        /* 二、向数组中添加元素
            语法：数组[索引] = 值
        */
        arr[0] = 10;
        arr[1] = 33;
        arr[2] = 22;


        /* 三、读取数组中的元素
            语法：数组[索引]
            如果读取不存在的索引，不会报错而是返回undefined
        */
        console.log(arr[2]);  // 22
        console.log(arr[3]);  // undefined


        /* 四、获取数组的长度
            使用length属性
            语法：数组名.length
            对于连续的数组，使用length可以获取到数组的长度（元素的个数）
            对于非连续的数组，使用length会获取到数组的最大的索引 + 1
        */
        console.log(arr.length); // 3
        console.log(arr); // {"0":10,"1":33,"2":22,"length":3}
        arr[10] = 33;
        console.log(arr.length); // 11
        console.log(arr); // {"0":10,"1":33,"10":33,"2":22,"length":11}

        // 尽量不要创建非连续的数组

        /* 五、修改数组的长度
            如果修改的length大于原长度，则多出部分会空出来
            如果修改的length小于原长度，则多出的元素会被删除
        */
        

        /* 六、向数组最后一位添加元素
            语法：数组名[数组名.length] = 值
            实例：arr[arr.length] = 22;
        */
    </script>
</head>
<body>
    
</body>
</html>